{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d5a4758a",
   "metadata": {},
   "source": [
    "卷积层的本质就是卷积核，卷积核的本质是过滤器，过滤器的输出是尺寸缩小的图，缩小的图本质是结构等比例缩小的结构。\n",
    "这句话大体正确吗？给出具体的例子，我认为比如一张24 * 24的image，我认为卷积之后可能就是4*4的大小，这是我的理解。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "170ac82d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure.\n",
      "It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "2dc75edf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting torch\n",
      "  Downloading torch-2.7.0-cp312-cp312-win_amd64.whl.metadata (29 kB)\n",
      "Collecting filelock (from torch)\n",
      "  Downloading filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)\n",
      "Requirement already satisfied: typing-extensions>=4.10.0 in g:\\temptest\\tempdownload\\my_env\\lib\\site-packages (from torch) (4.13.1)\n",
      "Collecting sympy>=1.13.3 (from torch)\n",
      "  Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)\n",
      "Collecting networkx (from torch)\n",
      "  Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n",
      "Requirement already satisfied: jinja2 in g:\\temptest\\tempdownload\\my_env\\lib\\site-packages (from torch) (3.1.6)\n",
      "Collecting fsspec (from torch)\n",
      "  Downloading fsspec-2025.3.2-py3-none-any.whl.metadata (11 kB)\n",
      "Requirement already satisfied: setuptools in g:\\temptest\\tempdownload\\my_env\\lib\\site-packages (from torch) (78.1.0)\n",
      "Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.13.3->torch)\n",
      "  Using cached mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
      "Requirement already satisfied: MarkupSafe>=2.0 in g:\\temptest\\tempdownload\\my_env\\lib\\site-packages (from jinja2->torch) (3.0.2)\n",
      "Downloading torch-2.7.0-cp312-cp312-win_amd64.whl (212.5 MB)\n",
      "   ---------------------------------------- 0.0/212.5 MB ? eta -:--:--\n",
      "   ---------------------------------------- 0.0/212.5 MB ? eta -:--:--\n",
      "   ---------------------------------------- 0.0/212.5 MB ? eta -:--:--\n",
      "   ---------------------------------------- 0.3/212.5 MB ? eta -:--:--\n",
      "   ---------------------------------------- 0.3/212.5 MB ? eta -:--:--\n",
      "   ---------------------------------------- 0.5/212.5 MB 1.0 MB/s eta 0:03:23\n",
      "   ---------------------------------------- 1.0/212.5 MB 1.2 MB/s eta 0:02:57\n",
      "   ---------------------------------------- 1.6/212.5 MB 1.6 MB/s eta 0:02:14\n",
      "    --------------------------------------- 2.9/212.5 MB 2.5 MB/s eta 0:01:25\n",
      "    --------------------------------------- 4.7/212.5 MB 3.5 MB/s eta 0:01:00\n",
      "    --------------------------------------- 5.0/212.5 MB 3.7 MB/s eta 0:00:57\n",
      "    --------------------------------------- 5.0/212.5 MB 3.7 MB/s eta 0:00:57\n",
      "    --------------------------------------- 5.0/212.5 MB 3.7 MB/s eta 0:00:57\n",
      "    --------------------------------------- 5.0/212.5 MB 3.7 MB/s eta 0:00:57\n",
      "    --------------------------------------- 5.0/212.5 MB 3.7 MB/s eta 0:00:57\n",
      "    --------------------------------------- 5.2/212.5 MB 2.0 MB/s eta 0:01:45\n",
      "    --------------------------------------- 5.2/212.5 MB 2.0 MB/s eta 0:01:45\n",
      "    --------------------------------------- 5.2/212.5 MB 2.0 MB/s eta 0:01:45\n",
      "    --------------------------------------- 5.2/212.5 MB 2.0 MB/s eta 0:01:45\n",
      "   - -------------------------------------- 5.5/212.5 MB 1.7 MB/s eta 0:02:06\n",
      "   - -------------------------------------- 5.5/212.5 MB 1.7 MB/s eta 0:02:06\n",
      "   - -------------------------------------- 5.8/212.5 MB 1.5 MB/s eta 0:02:17\n",
      "   - -------------------------------------- 6.3/212.5 MB 1.6 MB/s eta 0:02:13\n",
      "   - -------------------------------------- 6.8/212.5 MB 1.6 MB/s eta 0:02:09\n",
      "   - -------------------------------------- 7.3/212.5 MB 1.6 MB/s eta 0:02:06\n",
      "   - -------------------------------------- 7.9/212.5 MB 1.7 MB/s eta 0:01:58\n",
      "   - -------------------------------------- 8.9/212.5 MB 1.9 MB/s eta 0:01:50\n",
      "   - -------------------------------------- 9.2/212.5 MB 1.8 MB/s eta 0:01:52\n",
      "   -- ------------------------------------- 11.8/212.5 MB 2.2 MB/s eta 0:01:30\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 12.8/212.5 MB 2.4 MB/s eta 0:01:24\n",
      "   -- ------------------------------------- 13.1/212.5 MB 1.8 MB/s eta 0:01:52\n",
      "   -- ------------------------------------- 13.1/212.5 MB 1.8 MB/s eta 0:01:52\n",
      "   -- ------------------------------------- 13.4/212.5 MB 1.7 MB/s eta 0:01:56\n",
      "   -- ------------------------------------- 13.4/212.5 MB 1.7 MB/s eta 0:01:56\n",
      "   -- ------------------------------------- 13.6/212.5 MB 1.7 MB/s eta 0:01:57\n",
      "   -- ------------------------------------- 13.9/212.5 MB 1.7 MB/s eta 0:01:58\n",
      "   -- ------------------------------------- 14.4/212.5 MB 1.7 MB/s eta 0:01:57\n",
      "   -- ------------------------------------- 14.9/212.5 MB 1.7 MB/s eta 0:01:56\n",
      "   --- ------------------------------------ 16.0/212.5 MB 1.8 MB/s eta 0:01:50\n",
      "   --- ------------------------------------ 16.5/212.5 MB 1.8 MB/s eta 0:01:49\n",
      "   --- ------------------------------------ 17.0/212.5 MB 1.8 MB/s eta 0:01:48\n",
      "   --- ------------------------------------ 19.4/212.5 MB 2.0 MB/s eta 0:01:36\n",
      "   ---- ----------------------------------- 21.8/212.5 MB 2.2 MB/s eta 0:01:26\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.3/212.5 MB 2.3 MB/s eta 0:01:24\n",
      "   ---- ----------------------------------- 22.5/212.5 MB 1.9 MB/s eta 0:01:41\n",
      "   ---- ----------------------------------- 22.8/212.5 MB 1.9 MB/s eta 0:01:42\n",
      "   ---- ----------------------------------- 23.1/212.5 MB 1.9 MB/s eta 0:01:43\n",
      "   ---- ----------------------------------- 23.3/212.5 MB 1.8 MB/s eta 0:01:43\n",
      "   ---- ----------------------------------- 23.6/212.5 MB 1.8 MB/s eta 0:01:44\n",
      "   ---- ----------------------------------- 23.9/212.5 MB 1.8 MB/s eta 0:01:43\n",
      "   ---- ----------------------------------- 24.6/212.5 MB 1.9 MB/s eta 0:01:41\n",
      "   ---- ----------------------------------- 24.9/212.5 MB 1.9 MB/s eta 0:01:41\n",
      "   ---- ----------------------------------- 24.9/212.5 MB 1.9 MB/s eta 0:01:41\n",
      "   ---- ----------------------------------- 26.0/212.5 MB 1.9 MB/s eta 0:01:40\n",
      "   ----- ---------------------------------- 27.8/212.5 MB 2.0 MB/s eta 0:01:34\n",
      "   ----- ---------------------------------- 29.4/212.5 MB 2.1 MB/s eta 0:01:30\n",
      "   ----- ---------------------------------- 31.2/212.5 MB 2.1 MB/s eta 0:01:25\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ----- ---------------------------------- 31.7/212.5 MB 2.2 MB/s eta 0:01:24\n",
      "   ------ --------------------------------- 32.0/212.5 MB 1.9 MB/s eta 0:01:35\n",
      "   ------ --------------------------------- 32.0/212.5 MB 1.9 MB/s eta 0:01:35\n",
      "   ------ --------------------------------- 32.2/212.5 MB 1.9 MB/s eta 0:01:37\n",
      "   ------ --------------------------------- 32.2/212.5 MB 1.9 MB/s eta 0:01:37\n",
      "   ------ --------------------------------- 32.5/212.5 MB 1.9 MB/s eta 0:01:37\n",
      "   ------ --------------------------------- 32.8/212.5 MB 1.9 MB/s eta 0:01:37\n",
      "   ------ --------------------------------- 32.8/212.5 MB 1.9 MB/s eta 0:01:37\n",
      "   ------ --------------------------------- 33.0/212.5 MB 1.8 MB/s eta 0:01:39\n",
      "   ------ --------------------------------- 33.3/212.5 MB 1.8 MB/s eta 0:01:39\n",
      "   ------ --------------------------------- 33.6/212.5 MB 1.8 MB/s eta 0:01:39\n",
      "   ------ --------------------------------- 33.6/212.5 MB 1.8 MB/s eta 0:01:39\n",
      "   ------ --------------------------------- 33.8/212.5 MB 1.8 MB/s eta 0:01:41\n",
      "   ------ --------------------------------- 33.8/212.5 MB 1.8 MB/s eta 0:01:41\n",
      "   ------ --------------------------------- 35.1/212.5 MB 1.8 MB/s eta 0:01:39\n",
      "   ------ --------------------------------- 36.4/212.5 MB 1.9 MB/s eta 0:01:35\n",
      "   ------- -------------------------------- 37.7/212.5 MB 1.9 MB/s eta 0:01:32\n",
      "   ------- -------------------------------- 39.1/212.5 MB 1.9 MB/s eta 0:01:29\n",
      "   ------- -------------------------------- 40.4/212.5 MB 2.0 MB/s eta 0:01:27\n",
      "   ------- -------------------------------- 41.7/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 42.7/212.5 MB 2.1 MB/s eta 0:01:22\n",
      "   -------- ------------------------------- 42.7/212.5 MB 2.1 MB/s eta 0:01:22\n",
      "   -------- ------------------------------- 42.7/212.5 MB 2.1 MB/s eta 0:01:22\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.0/212.5 MB 2.0 MB/s eta 0:01:24\n",
      "   -------- ------------------------------- 43.3/212.5 MB 1.9 MB/s eta 0:01:31\n",
      "   -------- ------------------------------- 43.3/212.5 MB 1.9 MB/s eta 0:01:31\n",
      "   -------- ------------------------------- 43.5/212.5 MB 1.9 MB/s eta 0:01:32\n",
      "   -------- ------------------------------- 43.5/212.5 MB 1.9 MB/s eta 0:01:32\n",
      "   -------- ------------------------------- 43.5/212.5 MB 1.9 MB/s eta 0:01:32\n",
      "   -------- ------------------------------- 43.8/212.5 MB 1.8 MB/s eta 0:01:33\n",
      "   -------- ------------------------------- 43.8/212.5 MB 1.8 MB/s eta 0:01:33\n",
      "   -------- ------------------------------- 44.0/212.5 MB 1.8 MB/s eta 0:01:34\n",
      "   -------- ------------------------------- 44.0/212.5 MB 1.8 MB/s eta 0:01:34\n",
      "   -------- ------------------------------- 44.3/212.5 MB 1.8 MB/s eta 0:01:35\n",
      "   -------- ------------------------------- 44.3/212.5 MB 1.8 MB/s eta 0:01:35\n",
      "   -------- ------------------------------- 44.6/212.5 MB 1.8 MB/s eta 0:01:36\n",
      "   -------- ------------------------------- 44.6/212.5 MB 1.8 MB/s eta 0:01:36\n",
      "   -------- ------------------------------- 45.4/212.5 MB 1.8 MB/s eta 0:01:36\n",
      "   -------- ------------------------------- 46.1/212.5 MB 1.8 MB/s eta 0:01:34\n",
      "   -------- ------------------------------- 47.2/212.5 MB 1.8 MB/s eta 0:01:32\n",
      "   --------- ------------------------------ 48.2/212.5 MB 1.8 MB/s eta 0:01:30\n",
      "   --------- ------------------------------ 49.0/212.5 MB 1.8 MB/s eta 0:01:29\n",
      "   --------- ------------------------------ 50.1/212.5 MB 1.9 MB/s eta 0:01:27\n",
      "   --------- ------------------------------ 51.1/212.5 MB 1.9 MB/s eta 0:01:26\n",
      "   --------- ------------------------------ 52.4/212.5 MB 1.9 MB/s eta 0:01:24\n",
      "   ---------- ----------------------------- 53.5/212.5 MB 2.0 MB/s eta 0:01:22\n",
      "   ---------- ----------------------------- 54.5/212.5 MB 2.0 MB/s eta 0:01:20\n",
      "   ---------- ----------------------------- 55.6/212.5 MB 2.0 MB/s eta 0:01:19\n",
      "   ---------- ----------------------------- 56.6/212.5 MB 2.0 MB/s eta 0:01:18\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 56.9/212.5 MB 2.0 MB/s eta 0:01:17\n",
      "   ---------- ----------------------------- 57.1/212.5 MB 1.9 MB/s eta 0:01:22\n",
      "   ---------- ----------------------------- 57.1/212.5 MB 1.9 MB/s eta 0:01:22\n",
      "   ---------- ----------------------------- 57.1/212.5 MB 1.9 MB/s eta 0:01:22\n",
      "   ---------- ----------------------------- 57.4/212.5 MB 1.9 MB/s eta 0:01:23\n",
      "   ---------- ----------------------------- 57.4/212.5 MB 1.9 MB/s eta 0:01:23\n",
      "   ---------- ----------------------------- 57.4/212.5 MB 1.9 MB/s eta 0:01:23\n",
      "   ---------- ----------------------------- 57.4/212.5 MB 1.9 MB/s eta 0:01:23\n",
      "   ---------- ----------------------------- 57.7/212.5 MB 1.8 MB/s eta 0:01:26\n",
      "   ---------- ----------------------------- 57.7/212.5 MB 1.8 MB/s eta 0:01:26\n",
      "   ---------- ----------------------------- 57.9/212.5 MB 1.8 MB/s eta 0:01:27\n",
      "   ---------- ----------------------------- 57.9/212.5 MB 1.8 MB/s eta 0:01:27\n",
      "   ---------- ----------------------------- 58.2/212.5 MB 1.8 MB/s eta 0:01:27\n",
      "   ---------- ----------------------------- 58.2/212.5 MB 1.8 MB/s eta 0:01:27\n",
      "   ----------- ---------------------------- 59.0/212.5 MB 1.8 MB/s eta 0:01:25\n",
      "   ----------- ---------------------------- 60.0/212.5 MB 1.8 MB/s eta 0:01:24\n",
      "   ----------- ---------------------------- 60.8/212.5 MB 1.9 MB/s eta 0:01:22\n",
      "   ----------- ---------------------------- 61.6/212.5 MB 1.9 MB/s eta 0:01:21\n",
      "   ----------- ---------------------------- 62.4/212.5 MB 1.9 MB/s eta 0:01:20\n",
      "   ----------- ---------------------------- 63.2/212.5 MB 1.9 MB/s eta 0:01:19\n",
      "   ------------ --------------------------- 64.2/212.5 MB 1.9 MB/s eta 0:01:18\n",
      "   ------------ --------------------------- 65.0/212.5 MB 1.9 MB/s eta 0:01:17\n",
      "   ------------ --------------------------- 65.8/212.5 MB 1.9 MB/s eta 0:01:16\n",
      "   ------------ --------------------------- 66.6/212.5 MB 2.0 MB/s eta 0:01:15\n",
      "   ------------ --------------------------- 67.6/212.5 MB 2.0 MB/s eta 0:01:15\n",
      "   ------------ --------------------------- 68.4/212.5 MB 1.9 MB/s eta 0:01:16\n",
      "   ------------- -------------------------- 69.5/212.5 MB 1.9 MB/s eta 0:01:16\n",
      "   ------------- -------------------------- 70.3/212.5 MB 2.0 MB/s eta 0:01:11\n",
      "   ------------- -------------------------- 71.3/212.5 MB 2.0 MB/s eta 0:01:10\n",
      "   ------------- -------------------------- 72.1/212.5 MB 2.1 MB/s eta 0:01:09\n",
      "   ------------- -------------------------- 73.1/212.5 MB 2.1 MB/s eta 0:01:08\n",
      "   ------------- -------------------------- 73.9/212.5 MB 2.1 MB/s eta 0:01:07\n",
      "   -------------- ------------------------- 75.0/212.5 MB 2.1 MB/s eta 0:01:06\n",
      "   -------------- ------------------------- 75.8/212.5 MB 2.1 MB/s eta 0:01:05\n",
      "   -------------- ------------------------- 76.8/212.5 MB 2.1 MB/s eta 0:01:04\n",
      "   -------------- ------------------------- 77.6/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 77.9/212.5 MB 2.2 MB/s eta 0:01:03\n",
      "   -------------- ------------------------- 78.1/212.5 MB 2.1 MB/s eta 0:01:04\n",
      "   -------------- ------------------------- 78.1/212.5 MB 2.1 MB/s eta 0:01:04\n",
      "   -------------- ------------------------- 78.1/212.5 MB 2.1 MB/s eta 0:01:04\n",
      "   -------------- ------------------------- 78.1/212.5 MB 2.1 MB/s eta 0:01:04\n",
      "   -------------- ------------------------- 78.4/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   -------------- ------------------------- 78.4/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   -------------- ------------------------- 78.4/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   -------------- ------------------------- 78.4/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   -------------- ------------------------- 78.6/212.5 MB 2.0 MB/s eta 0:01:08\n",
      "   -------------- ------------------------- 78.6/212.5 MB 2.0 MB/s eta 0:01:08\n",
      "   -------------- ------------------------- 78.9/212.5 MB 2.0 MB/s eta 0:01:09\n",
      "   -------------- ------------------------- 78.9/212.5 MB 2.0 MB/s eta 0:01:09\n",
      "   -------------- ------------------------- 78.9/212.5 MB 2.0 MB/s eta 0:01:09\n",
      "   -------------- ------------------------- 79.2/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   -------------- ------------------------- 79.2/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   --------------- ------------------------ 80.0/212.5 MB 1.9 MB/s eta 0:01:10\n",
      "   --------------- ------------------------ 80.5/212.5 MB 1.9 MB/s eta 0:01:09\n",
      "   --------------- ------------------------ 81.3/212.5 MB 1.9 MB/s eta 0:01:08\n",
      "   --------------- ------------------------ 81.8/212.5 MB 2.0 MB/s eta 0:01:07\n",
      "   --------------- ------------------------ 82.6/212.5 MB 2.0 MB/s eta 0:01:06\n",
      "   --------------- ------------------------ 83.4/212.5 MB 2.0 MB/s eta 0:01:06\n",
      "   --------------- ------------------------ 84.1/212.5 MB 2.0 MB/s eta 0:01:05\n",
      "   --------------- ------------------------ 84.9/212.5 MB 2.0 MB/s eta 0:01:04\n",
      "   ---------------- ----------------------- 85.5/212.5 MB 2.0 MB/s eta 0:01:03\n",
      "   ---------------- ----------------------- 86.2/212.5 MB 2.0 MB/s eta 0:01:02\n",
      "   ---------------- ----------------------- 87.0/212.5 MB 2.0 MB/s eta 0:01:03\n",
      "   ---------------- ----------------------- 87.8/212.5 MB 2.0 MB/s eta 0:01:04\n",
      "   ---------------- ----------------------- 88.6/212.5 MB 1.9 MB/s eta 0:01:04\n",
      "   ---------------- ----------------------- 89.7/212.5 MB 2.1 MB/s eta 0:01:00\n",
      "   ----------------- ---------------------- 90.4/212.5 MB 2.1 MB/s eta 0:00:59\n",
      "   ----------------- ---------------------- 91.2/212.5 MB 2.1 MB/s eta 0:00:59\n",
      "   ----------------- ---------------------- 91.8/212.5 MB 2.1 MB/s eta 0:00:58\n",
      "   ----------------- ---------------------- 92.5/212.5 MB 2.1 MB/s eta 0:00:57\n",
      "   ----------------- ---------------------- 93.3/212.5 MB 2.1 MB/s eta 0:00:57\n",
      "   ----------------- ---------------------- 94.1/212.5 MB 2.1 MB/s eta 0:00:56\n",
      "   ----------------- ---------------------- 94.9/212.5 MB 2.1 MB/s eta 0:00:55\n",
      "   ------------------ --------------------- 95.7/212.5 MB 2.2 MB/s eta 0:00:55\n",
      "   ------------------ --------------------- 96.5/212.5 MB 2.2 MB/s eta 0:00:54\n",
      "   ------------------ --------------------- 97.3/212.5 MB 2.2 MB/s eta 0:00:53\n",
      "   ------------------ --------------------- 98.0/212.5 MB 2.2 MB/s eta 0:00:52\n",
      "   ------------------ --------------------- 98.8/212.5 MB 2.2 MB/s eta 0:00:52\n",
      "   ------------------ --------------------- 99.6/212.5 MB 2.2 MB/s eta 0:00:51\n",
      "   ------------------ --------------------- 100.4/212.5 MB 2.3 MB/s eta 0:00:50\n",
      "   ------------------- -------------------- 101.2/212.5 MB 2.3 MB/s eta 0:00:49\n",
      "   ------------------- -------------------- 102.0/212.5 MB 2.3 MB/s eta 0:00:48\n",
      "   ------------------- -------------------- 102.8/212.5 MB 2.3 MB/s eta 0:00:48\n",
      "   ------------------- -------------------- 103.5/212.5 MB 2.3 MB/s eta 0:00:47\n",
      "   ------------------- -------------------- 104.3/212.5 MB 2.4 MB/s eta 0:00:46\n",
      "   ------------------- -------------------- 105.1/212.5 MB 2.4 MB/s eta 0:00:45\n",
      "   ------------------- -------------------- 105.9/212.5 MB 2.4 MB/s eta 0:00:45\n",
      "   -------------------- ------------------- 106.7/212.5 MB 2.4 MB/s eta 0:00:44\n",
      "   -------------------- ------------------- 107.7/212.5 MB 2.4 MB/s eta 0:00:44\n",
      "   -------------------- ------------------- 108.5/212.5 MB 2.4 MB/s eta 0:00:44\n",
      "   -------------------- ------------------- 109.3/212.5 MB 2.4 MB/s eta 0:00:44\n",
      "   -------------------- ------------------- 110.1/212.5 MB 2.4 MB/s eta 0:00:44\n",
      "   -------------------- ------------------- 110.9/212.5 MB 2.4 MB/s eta 0:00:44\n",
      "   --------------------- ------------------ 111.7/212.5 MB 2.3 MB/s eta 0:00:44\n",
      "   --------------------- ------------------ 111.9/212.5 MB 2.3 MB/s eta 0:00:44\n",
      "   --------------------- ------------------ 111.9/212.5 MB 2.3 MB/s eta 0:00:44\n",
      "   --------------------- ------------------ 112.2/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 112.2/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 112.2/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 112.5/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 112.5/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 112.5/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 112.7/212.5 MB 2.4 MB/s eta 0:00:43\n",
      "   --------------------- ------------------ 112.7/212.5 MB 2.4 MB/s eta 0:00:43\n",
      "   --------------------- ------------------ 113.0/212.5 MB 2.3 MB/s eta 0:00:43\n",
      "   --------------------- ------------------ 113.2/212.5 MB 2.3 MB/s eta 0:00:43\n",
      "   --------------------- ------------------ 113.8/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 114.0/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 114.6/212.5 MB 2.4 MB/s eta 0:00:42\n",
      "   --------------------- ------------------ 115.1/212.5 MB 2.4 MB/s eta 0:00:41\n",
      "   --------------------- ------------------ 115.6/212.5 MB 2.4 MB/s eta 0:00:41\n",
      "   --------------------- ------------------ 115.9/212.5 MB 2.4 MB/s eta 0:00:41\n",
      "   --------------------- ------------------ 116.4/212.5 MB 2.4 MB/s eta 0:00:40\n",
      "   ---------------------- ----------------- 116.9/212.5 MB 2.4 MB/s eta 0:00:40\n",
      "   ---------------------- ----------------- 117.2/212.5 MB 2.5 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 117.7/212.5 MB 2.5 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 118.2/212.5 MB 2.5 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 118.8/212.5 MB 2.5 MB/s eta 0:00:38\n",
      "   ---------------------- ----------------- 119.0/212.5 MB 2.5 MB/s eta 0:00:38\n",
      "   ---------------------- ----------------- 119.5/212.5 MB 2.4 MB/s eta 0:00:38\n",
      "   ---------------------- ----------------- 120.1/212.5 MB 2.4 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 120.6/212.5 MB 2.4 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 121.1/212.5 MB 2.4 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 121.6/212.5 MB 2.4 MB/s eta 0:00:39\n",
      "   ---------------------- ----------------- 122.2/212.5 MB 2.4 MB/s eta 0:00:39\n",
      "   ----------------------- ---------------- 122.7/212.5 MB 2.3 MB/s eta 0:00:39\n",
      "   ----------------------- ---------------- 122.9/212.5 MB 2.3 MB/s eta 0:00:39\n",
      "   ----------------------- ---------------- 123.5/212.5 MB 2.3 MB/s eta 0:00:39\n",
      "   ----------------------- ---------------- 124.0/212.5 MB 2.3 MB/s eta 0:00:40\n",
      "   ----------------------- ---------------- 124.5/212.5 MB 2.4 MB/s eta 0:00:37\n",
      "   ----------------------- ---------------- 125.0/212.5 MB 2.4 MB/s eta 0:00:37\n",
      "   ----------------------- ---------------- 125.3/212.5 MB 2.4 MB/s eta 0:00:37\n",
      "   ----------------------- ---------------- 125.8/212.5 MB 2.4 MB/s eta 0:00:36\n",
      "   ----------------------- ---------------- 126.4/212.5 MB 2.4 MB/s eta 0:00:36\n",
      "   ----------------------- ---------------- 126.9/212.5 MB 2.4 MB/s eta 0:00:36\n",
      "   ----------------------- ---------------- 127.4/212.5 MB 2.4 MB/s eta 0:00:36\n",
      "   ------------------------ --------------- 127.9/212.5 MB 2.4 MB/s eta 0:00:36\n",
      "   ------------------------ --------------- 128.2/212.5 MB 2.4 MB/s eta 0:00:35\n",
      "   ------------------------ --------------- 128.7/212.5 MB 2.4 MB/s eta 0:00:35\n",
      "   ------------------------ --------------- 129.2/212.5 MB 2.4 MB/s eta 0:00:35\n",
      "   ------------------------ --------------- 129.8/212.5 MB 2.5 MB/s eta 0:00:34\n",
      "   ------------------------ --------------- 130.3/212.5 MB 2.5 MB/s eta 0:00:34\n",
      "   ------------------------ --------------- 130.5/212.5 MB 2.5 MB/s eta 0:00:34\n",
      "   ------------------------ --------------- 131.1/212.5 MB 2.5 MB/s eta 0:00:33\n",
      "   ------------------------ --------------- 131.6/212.5 MB 2.5 MB/s eta 0:00:33\n",
      "   ------------------------ --------------- 132.1/212.5 MB 2.5 MB/s eta 0:00:33\n",
      "   ------------------------ --------------- 132.6/212.5 MB 2.5 MB/s eta 0:00:32\n",
      "   ------------------------- -------------- 133.2/212.5 MB 2.5 MB/s eta 0:00:32\n",
      "   ------------------------- -------------- 133.7/212.5 MB 2.5 MB/s eta 0:00:32\n",
      "   ------------------------- -------------- 134.2/212.5 MB 2.6 MB/s eta 0:00:31\n",
      "   ------------------------- -------------- 134.7/212.5 MB 2.6 MB/s eta 0:00:31\n",
      "   ------------------------- -------------- 135.3/212.5 MB 2.6 MB/s eta 0:00:31\n",
      "   ------------------------- -------------- 135.5/212.5 MB 2.6 MB/s eta 0:00:30\n",
      "   ------------------------- -------------- 136.1/212.5 MB 2.6 MB/s eta 0:00:30\n",
      "   ------------------------- -------------- 136.8/212.5 MB 2.6 MB/s eta 0:00:30\n",
      "   ------------------------- -------------- 137.4/212.5 MB 2.5 MB/s eta 0:00:30\n",
      "   ------------------------- -------------- 137.9/212.5 MB 2.5 MB/s eta 0:00:30\n",
      "   -------------------------- ------------- 138.4/212.5 MB 2.5 MB/s eta 0:00:30\n",
      "   -------------------------- ------------- 138.9/212.5 MB 2.5 MB/s eta 0:00:30\n",
      "   -------------------------- ------------- 139.5/212.5 MB 2.5 MB/s eta 0:00:30\n",
      "   -------------------------- ------------- 140.2/212.5 MB 2.5 MB/s eta 0:00:29\n",
      "   -------------------------- ------------- 140.8/212.5 MB 2.5 MB/s eta 0:00:29\n",
      "   -------------------------- ------------- 141.3/212.5 MB 2.5 MB/s eta 0:00:29\n",
      "   -------------------------- ------------- 142.1/212.5 MB 2.5 MB/s eta 0:00:29\n",
      "   -------------------------- ------------- 142.6/212.5 MB 2.5 MB/s eta 0:00:29\n",
      "   -------------------------- ------------- 143.4/212.5 MB 2.5 MB/s eta 0:00:29\n",
      "   --------------------------- ------------ 143.9/212.5 MB 2.4 MB/s eta 0:00:29\n",
      "   --------------------------- ------------ 144.7/212.5 MB 2.4 MB/s eta 0:00:28\n",
      "   --------------------------- ------------ 145.5/212.5 MB 2.4 MB/s eta 0:00:28\n",
      "   --------------------------- ------------ 146.3/212.5 MB 2.4 MB/s eta 0:00:28\n",
      "   --------------------------- ------------ 147.1/212.5 MB 2.4 MB/s eta 0:00:28\n",
      "   --------------------------- ------------ 147.8/212.5 MB 2.4 MB/s eta 0:00:27\n",
      "   --------------------------- ------------ 148.6/212.5 MB 2.4 MB/s eta 0:00:27\n",
      "   ---------------------------- ----------- 149.4/212.5 MB 2.4 MB/s eta 0:00:27\n",
      "   ---------------------------- ----------- 150.2/212.5 MB 2.4 MB/s eta 0:00:26\n",
      "   ---------------------------- ----------- 151.3/212.5 MB 2.5 MB/s eta 0:00:25\n",
      "   ---------------------------- ----------- 152.0/212.5 MB 2.6 MB/s eta 0:00:24\n",
      "   ---------------------------- ----------- 153.1/212.5 MB 2.6 MB/s eta 0:00:24\n",
      "   ----------------------------- ---------- 154.1/212.5 MB 2.6 MB/s eta 0:00:23\n",
      "   ----------------------------- ---------- 155.2/212.5 MB 2.6 MB/s eta 0:00:22\n",
      "   ----------------------------- ---------- 156.0/212.5 MB 2.6 MB/s eta 0:00:22\n",
      "   ----------------------------- ---------- 157.0/212.5 MB 2.6 MB/s eta 0:00:22\n",
      "   ----------------------------- ---------- 158.1/212.5 MB 2.7 MB/s eta 0:00:20\n",
      "   ------------------------------ --------- 159.4/212.5 MB 2.7 MB/s eta 0:00:20\n",
      "   ------------------------------ --------- 159.9/212.5 MB 2.8 MB/s eta 0:00:20\n",
      "   ------------------------------ --------- 160.4/212.5 MB 2.7 MB/s eta 0:00:19\n",
      "   ------------------------------ --------- 160.7/212.5 MB 2.8 MB/s eta 0:00:19\n",
      "   ------------------------------ --------- 161.0/212.5 MB 2.8 MB/s eta 0:00:19\n",
      "   ------------------------------ --------- 161.2/212.5 MB 2.8 MB/s eta 0:00:19\n",
      "   ------------------------------ --------- 161.7/212.5 MB 2.8 MB/s eta 0:00:19\n",
      "   ------------------------------ --------- 162.0/212.5 MB 2.8 MB/s eta 0:00:19\n",
      "   ------------------------------ --------- 162.5/212.5 MB 2.8 MB/s eta 0:00:18\n",
      "   ------------------------------ --------- 163.1/212.5 MB 2.8 MB/s eta 0:00:18\n",
      "   ------------------------------ --------- 163.6/212.5 MB 2.8 MB/s eta 0:00:18\n",
      "   ------------------------------ --------- 164.4/212.5 MB 2.8 MB/s eta 0:00:17\n",
      "   ------------------------------- -------- 164.9/212.5 MB 2.9 MB/s eta 0:00:17\n",
      "   ------------------------------- -------- 165.7/212.5 MB 2.9 MB/s eta 0:00:17\n",
      "   ------------------------------- -------- 166.2/212.5 MB 2.9 MB/s eta 0:00:17\n",
      "   ------------------------------- -------- 167.0/212.5 MB 2.9 MB/s eta 0:00:16\n",
      "   ------------------------------- -------- 167.5/212.5 MB 2.9 MB/s eta 0:00:16\n",
      "   ------------------------------- -------- 168.3/212.5 MB 2.9 MB/s eta 0:00:16\n",
      "   ------------------------------- -------- 169.1/212.5 MB 2.9 MB/s eta 0:00:16\n",
      "   ------------------------------- -------- 169.6/212.5 MB 2.9 MB/s eta 0:00:15\n",
      "   -------------------------------- ------- 170.4/212.5 MB 2.9 MB/s eta 0:00:15\n",
      "   -------------------------------- ------- 171.2/212.5 MB 2.9 MB/s eta 0:00:15\n",
      "   -------------------------------- ------- 171.7/212.5 MB 2.9 MB/s eta 0:00:15\n",
      "   -------------------------------- ------- 172.5/212.5 MB 2.9 MB/s eta 0:00:14\n",
      "   -------------------------------- ------- 173.3/212.5 MB 2.9 MB/s eta 0:00:14\n",
      "   -------------------------------- ------- 173.8/212.5 MB 2.9 MB/s eta 0:00:14\n",
      "   -------------------------------- ------- 174.6/212.5 MB 2.9 MB/s eta 0:00:14\n",
      "   --------------------------------- ------ 175.4/212.5 MB 2.9 MB/s eta 0:00:14\n",
      "   --------------------------------- ------ 176.2/212.5 MB 2.9 MB/s eta 0:00:13\n",
      "   --------------------------------- ------ 176.9/212.5 MB 2.9 MB/s eta 0:00:13\n",
      "   --------------------------------- ------ 177.5/212.5 MB 2.8 MB/s eta 0:00:13\n",
      "   --------------------------------- ------ 178.3/212.5 MB 2.8 MB/s eta 0:00:13\n",
      "   --------------------------------- ------ 179.0/212.5 MB 2.8 MB/s eta 0:00:12\n",
      "   --------------------------------- ------ 179.8/212.5 MB 2.8 MB/s eta 0:00:12\n",
      "   --------------------------------- ------ 180.4/212.5 MB 2.8 MB/s eta 0:00:12\n",
      "   ---------------------------------- ----- 181.1/212.5 MB 2.8 MB/s eta 0:00:12\n",
      "   ---------------------------------- ----- 181.9/212.5 MB 2.8 MB/s eta 0:00:11\n",
      "   ---------------------------------- ----- 182.7/212.5 MB 2.8 MB/s eta 0:00:11\n",
      "   ---------------------------------- ----- 183.5/212.5 MB 2.8 MB/s eta 0:00:11\n",
      "   ---------------------------------- ----- 184.3/212.5 MB 2.8 MB/s eta 0:00:10\n",
      "   ---------------------------------- ----- 184.8/212.5 MB 2.8 MB/s eta 0:00:10\n",
      "   ---------------------------------- ----- 185.6/212.5 MB 2.8 MB/s eta 0:00:10\n",
      "   ----------------------------------- ---- 186.4/212.5 MB 2.8 MB/s eta 0:00:10\n",
      "   ----------------------------------- ---- 186.9/212.5 MB 2.8 MB/s eta 0:00:10\n",
      "   ----------------------------------- ---- 187.7/212.5 MB 2.8 MB/s eta 0:00:09\n",
      "   ----------------------------------- ---- 188.5/212.5 MB 2.8 MB/s eta 0:00:09\n",
      "   ----------------------------------- ---- 189.3/212.5 MB 2.8 MB/s eta 0:00:09\n",
      "   ----------------------------------- ---- 189.8/212.5 MB 2.8 MB/s eta 0:00:09\n",
      "   ----------------------------------- ---- 190.6/212.5 MB 2.8 MB/s eta 0:00:08\n",
      "   ------------------------------------ --- 191.4/212.5 MB 2.8 MB/s eta 0:00:08\n",
      "   ------------------------------------ --- 192.2/212.5 MB 2.8 MB/s eta 0:00:08\n",
      "   ------------------------------------ --- 192.9/212.5 MB 2.8 MB/s eta 0:00:07\n",
      "   ------------------------------------ --- 193.7/212.5 MB 2.8 MB/s eta 0:00:07\n",
      "   ------------------------------------ --- 194.5/212.5 MB 2.8 MB/s eta 0:00:07\n",
      "   ------------------------------------ --- 195.0/212.5 MB 2.8 MB/s eta 0:00:07\n",
      "   ------------------------------------ --- 195.8/212.5 MB 2.8 MB/s eta 0:00:06\n",
      "   ------------------------------------- -- 196.6/212.5 MB 2.8 MB/s eta 0:00:06\n",
      "   ------------------------------------- -- 197.4/212.5 MB 2.9 MB/s eta 0:00:06\n",
      "   ------------------------------------- -- 198.2/212.5 MB 2.9 MB/s eta 0:00:05\n",
      "   ------------------------------------- -- 199.0/212.5 MB 2.9 MB/s eta 0:00:05\n",
      "   ------------------------------------- -- 199.8/212.5 MB 2.9 MB/s eta 0:00:05\n",
      "   ------------------------------------- -- 200.5/212.5 MB 3.0 MB/s eta 0:00:04\n",
      "   ------------------------------------- -- 201.3/212.5 MB 3.0 MB/s eta 0:00:04\n",
      "   -------------------------------------- - 202.4/212.5 MB 3.0 MB/s eta 0:00:04\n",
      "   -------------------------------------- - 203.2/212.5 MB 3.1 MB/s eta 0:00:04\n",
      "   -------------------------------------- - 203.9/212.5 MB 3.1 MB/s eta 0:00:03\n",
      "   -------------------------------------- - 204.7/212.5 MB 3.1 MB/s eta 0:00:03\n",
      "   -------------------------------------- - 205.5/212.5 MB 3.1 MB/s eta 0:00:03\n",
      "   -------------------------------------- - 206.3/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  207.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.1/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.4/212.5 MB 3.1 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.7/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.7/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.7/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.9/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.9/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.9/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.9/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  208.9/212.5 MB 3.0 MB/s eta 0:00:02\n",
      "   ---------------------------------------  209.2/212.5 MB 2.9 MB/s eta 0:00:02\n",
      "   ---------------------------------------  209.2/212.5 MB 2.9 MB/s eta 0:00:02\n",
      "   ---------------------------------------  209.5/212.5 MB 2.9 MB/s eta 0:00:02\n",
      "   ---------------------------------------  209.5/212.5 MB 2.9 MB/s eta 0:00:02\n",
      "   ---------------------------------------  209.5/212.5 MB 2.9 MB/s eta 0:00:02\n",
      "   ---------------------------------------  209.7/212.5 MB 2.9 MB/s eta 0:00:01\n",
      "   ---------------------------------------  209.7/212.5 MB 2.9 MB/s eta 0:00:01\n",
      "   ---------------------------------------  210.5/212.5 MB 2.8 MB/s eta 0:00:01\n",
      "   ---------------------------------------  211.0/212.5 MB 2.9 MB/s eta 0:00:01\n",
      "   ---------------------------------------  211.8/212.5 MB 2.9 MB/s eta 0:00:01\n",
      "   ---------------------------------------  212.3/212.5 MB 2.9 MB/s eta 0:00:01\n",
      "   ---------------------------------------  212.3/212.5 MB 2.9 MB/s eta 0:00:01\n",
      "   ---------------------------------------- 212.5/212.5 MB 2.8 MB/s eta 0:00:00\n",
      "Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB)\n",
      "   ---------------------------------------- 0.0/6.3 MB ? eta -:--:--\n",
      "   --- ------------------------------------ 0.5/6.3 MB 4.2 MB/s eta 0:00:02\n",
      "   --------- ------------------------------ 1.6/6.3 MB 3.8 MB/s eta 0:00:02\n",
      "   ------------- -------------------------- 2.1/6.3 MB 3.7 MB/s eta 0:00:02\n",
      "   ------------------ --------------------- 2.9/6.3 MB 3.6 MB/s eta 0:00:01\n",
      "   ----------------------- ---------------- 3.7/6.3 MB 3.7 MB/s eta 0:00:01\n",
      "   ---------------------------- ----------- 4.5/6.3 MB 3.7 MB/s eta 0:00:01\n",
      "   --------------------------------- ------ 5.2/6.3 MB 3.7 MB/s eta 0:00:01\n",
      "   -------------------------------------- - 6.0/6.3 MB 3.7 MB/s eta 0:00:01\n",
      "   ---------------------------------------- 6.3/6.3 MB 3.7 MB/s eta 0:00:00\n",
      "Downloading filelock-3.18.0-py3-none-any.whl (16 kB)\n",
      "Downloading fsspec-2025.3.2-py3-none-any.whl (194 kB)\n",
      "Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)\n",
      "   ---------------------------------------- 0.0/1.7 MB ? eta -:--:--\n",
      "   ------------------ --------------------- 0.8/1.7 MB 4.8 MB/s eta 0:00:01\n",
      "   ---------------------------------------- 1.7/1.7 MB 4.2 MB/s eta 0:00:00\n",
      "Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
      "Installing collected packages: mpmath, sympy, networkx, fsspec, filelock, torch\n",
      "Successfully installed filelock-3.18.0 fsspec-2025.3.2 mpmath-1.3.0 networkx-3.4.2 sympy-1.14.0 torch-2.7.0\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "[notice] A new release of pip is available: 24.2 -> 25.1.1\n",
      "[notice] To update, run: python.exe -m pip install --upgrade pip\n"
     ]
    }
   ],
   "source": [
    "# pip install torch"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0dc74a46",
   "metadata": {},
   "source": [
    "首先拟制一个图像数据。这里随机数据的时候遵循Patch优先原则。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "91dfbde4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入图像尺寸: torch.Size([24, 24])\n"
     ]
    }
   ],
   "source": [
    "# 创建一个24x24的随机图像（批次大小=1，通道数=3）\n",
    "input_image = torch.randn(1, 3, 24, 24)\n",
    "print(f\"输入图像尺寸: {input_image.shape[2:]}\")  # 输出: [24, 24]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fb77eaa1",
   "metadata": {},
   "source": [
    "我们讨论不同的卷积核对图像的作用结果。\n",
    "\n",
    "注意，`nn.Conv2d` 函数的参数有很多，这里举例子讨论它的参数意义。我们得到的是一个卷积层而不是得到的一个函数。\n",
    "\n",
    "```python\n",
    "net = tf_util.conv2d(\n",
    "    input_image,   # 输入张量\n",
    "    32,            # 输出通道数（必填）\n",
    "    [1, 3],        # 卷积核大小（高×宽）\n",
    "    padding='VALID',    # 填充方式（选填，默认'VALID'）\n",
    "    stride=[1, 1],      # 步长（高×宽方向，选填，默认[1,1]）\n",
    "    bn=True,       # 是否使用批量归一化（选填）\n",
    "    is_training,   # 训练模式标志（选填，用于bn的dropout）\n",
    "    scope='tconv1', # 变量作用域（选填，避免命名冲突）\n",
    "    bn_decay=None   # 衰减系数（选填，用于bn）\n",
    ")\n",
    "```\n",
    "Conv2d的输入参数是约定好了的，这意味着我们对卷积核的设计是有对应的数据格式的。\n",
    "#### `inputs`（输入张量，即代码中的 `input_image`）\n",
    "\n",
    "**形状要求**：必须是 **4D 张量**，格式为 `[batch_size, height, width, channels]`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d06baefa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "情况1输出尺寸: torch.Size([24, 24])\n"
     ]
    }
   ],
   "source": [
    "# 情况1: 保持尺寸不变（使用padding）\n",
    "conv1 = nn.Conv2d(\n",
    "    in_channels=3, \n",
    "    out_channels=16, \n",
    "    kernel_size=3, \n",
    "    stride=1, \n",
    "    padding=1  # 关键参数：使用padding=(kernel_size-1)/2\n",
    ")\n",
    "output1 = conv1(input_image)\n",
    "print(f\"情况1输出尺寸: {output1.shape[2:]}\")  # 输出: [24, 24]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "81bd487f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "情况2输出尺寸: torch.Size([10, 10])\n"
     ]
    }
   ],
   "source": [
    "# 情况2: 适度缩小（常见配置）\n",
    "conv2 = nn.Conv2d(\n",
    "    in_channels=3, \n",
    "    out_channels=16, \n",
    "    kernel_size=5, \n",
    "    stride=2, \n",
    "    padding=0  # 不使用padding\n",
    ")\n",
    "output2 = conv2(input_image)\n",
    "print(f\"情况2输出尺寸: {output2.shape[2:]}\")  # 输出: [10, 10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e64e2a14",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "情况3输出尺寸: torch.Size([4, 4])\n"
     ]
    }
   ],
   "source": [
    "# 情况3: 大幅缩小（接近4x4）\n",
    "conv3 = nn.Conv2d(\n",
    "    in_channels=3, \n",
    "    out_channels=16, \n",
    "    kernel_size=7,  # 更大的卷积核\n",
    "    stride=5,       # 更大的步长\n",
    "    padding=0\n",
    ")\n",
    "output3 = conv3(input_image)\n",
    "print(f\"情况3输出尺寸: {output3.shape[2:]}\")  # 输出: [4, 4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c7e89e4d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "理论计算情况3输出尺寸: 4x4\n"
     ]
    }
   ],
   "source": [
    "# 验证计算逻辑\n",
    "def compute_output_size(input_size, kernel_size, stride, padding):\n",
    "    return (input_size - kernel_size + 2 * padding) // stride + 1\n",
    "\n",
    "# 验证情况3的计算\n",
    "print(f\"理论计算情况3输出尺寸: {compute_output_size(24, 7, 5, 0)}x{compute_output_size(24, 7, 5, 0)}\")    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ca8cc515",
   "metadata": {},
   "source": [
    "卷积结果的大小结算\n",
    "\n",
    "$$ W_{out}=\\frac{W_{in}-W+2P}{S}+1 $$\n",
    "$$ H_{out}=\\frac{H_{in}-H+2P}{S}+1 $$\n",
    "$$ D_{out}= N $$\n",
    "\n",
    "其中，输入尺寸是我们可以提前知道的，在2D的上下文中，我们讨论Weight和Height两个维度的尺寸变化。其中`w`是卷积核尺寸大小，`p`为填充大小，`s`为步长大小。`N`为通道数。\n",
    "\n",
    "我们可以直观的看出，卷积核的大小越大则特征图的尺寸越小，也就是说如果保持步长不变的情况下我们需要更大的填充来保证尺寸不变。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "my_env",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
